Communication has developed dramatically in the last decade. The Internet now is the preferred vehicle for most interpersonal communications. The Internet is able to accommodate not only real time and non-real time text messaging but also real time voice, or Voice Over Internet Protocol or VoIP, communications.
The Session Initiation Protocol or SIP provides a powerful tool for effective interpersonal communications over the Internet. SIP is an application layer signaling, presence, and instant messaging protocol for effecting multimedia sessions. The main signaling functions of the protocol include location of an endpoint, contacting an endpoint to determine willingness to establish a session, exchange of media information to allow the session to be established, modification of existing media sessions, tear down of existing media sessions, publication and upload of presence information, request delivery of presence information, provision of presence and other event notifications, and transport of instant messages.
SIP incorporates elements of the Hyper Text Transport Protocol (HTTP) used for Web browsing. From HTTP, SIP borrowed a client-server design and the use of Universal Resource Locators (URLs) and Universal Resource Indicators (URIs). SIP uses e-mail-like names for addresses. SIP URIs correspond to either a user or single device or endpoint and can handle telephone numbers, transport parameters, as well as instant messaging handles and other items. A SIP URI is resolved to an IP address using a SIP proxy server and DNS lookups at the time of the call, for example.
The mechanics of SIP can be illustrated with reference to an instant messaging example. In the example, SUBSCRIBE is used to request status or presence updates from the presence server, and NOTIFY to deliver that information to the requestor or presence watcher. In the example, party A wishes to communicate by instant messaging with party B. To find out the status of party B, party A subscribes to party B's presence information by sending a SUBSCRIBE message to party B. Party B accepts the subscription by sending an 202 ACCEPTED response back to party A. The subscription begins when party B sending a NOTIFY message back to party A. Party A sends a 200 OK response to party B acknowledging receipt. While the subscription is effective, any change in status of party B is the subject of a NOTIFY message to party A. In this manner, party A is made aware, on a real time basis, of the status, or presence, of party B.
The mechanics of SIP will be further illustrated with reference to a voice call example. In the example, party A wishes to make a call to party B. Party A first sends an INVITE to a first proxy server. The first proxy server performs a DNS lookup of partyB's SIP URI domain name and returns the IP address of a second proxy server, which handles that domain. The INVITE is then sent to that address. The second proxy server looks up the SIP URI in its database and locates party B. The INVITE is then forwarded to party B's IP address with the addition of a second Via header field stamped with the address of the second proxy server. Party B returns a 180 RINGING message to the second proxy server, which forwards the message to the first proxy server. The first proxy server then forwards the message to party A. When the call is answered by party B, party B sends a 200 OK response. Party A, upon receipt of the response, sends an ACK message directly to party B. A media session is thus established. The call is disconnected using a BYE message.
Currently, many communication devices are capable of engaging in VoIP calls and instant messaging sessions. They cannot, however, engage in both at the same time. Generally, the device user must choose between the two options, such as when an incoming call is received during an instant messaging session.
Additionally, many communication devices are capable of engaging only in a VoIP call or an instant messaging session. Such devices cannot communicate in other types of sessions.
There is a need for a communication system that permits users to engage simultaneously in VoIP calls and instant messaging sessions.